home *** CD-ROM | disk | FTP | other *** search
/ Dos/V Magazine 1995 October 15 / CD [VMAG951015].bin / _demo / nekodemo / main / shared.dir / 00303_MacCDDA.ls < prev    next >
Encoding:
Text File  |  1995-06-01  |  3.7 KB  |  197 lines

  1. property pxobj, poutpoint
  2.  
  3. on birth me
  4.   return me
  5. end
  6.  
  7. on mservice me
  8.   set myxobj to the pxobj of me
  9.   repeat while 1
  10.     set conditioncode to myxobj(mservice)
  11.     if conditioncode = 0 then
  12.       exit repeat
  13.       next repeat
  14.     end if
  15.     if conditioncode < 0 then
  16.       myxobj(mcancel)
  17.       exit repeat
  18.     end if
  19.   end repeat
  20.   return conditioncode
  21. end
  22.  
  23. on mpreparemedium me
  24.   set myxobj to the pxobj of me
  25.   if myxobj(mRespondsTo, "mPrepareMedium") = 0 then
  26.     return 0
  27.   else
  28.     myxobj(mpreparemedium)
  29.     return mservice(me)
  30.   end if
  31. end
  32.  
  33. on maudioenable me, achannel, aflag
  34.   set myxobj to the pxobj of me
  35.   if myxobj(mRespondsTo, "mAudioEnable") = 0 then
  36.     return 0
  37.   else
  38.     myxobj(maudioenable, achannel, aflag)
  39.     return mservice(me)
  40.   end if
  41. end
  42.  
  43. on mgetfirstframe me, atrack
  44.   set myxobj to the pxobj of me
  45.   if myxobj(mRespondsTo, "mGetFirstFrame") = 0 then
  46.     return 0
  47.   else
  48.     return myxobj(mgetfirstframe, atrack)
  49.   end if
  50. end
  51.  
  52. on mgetlastframe me, atrack
  53.   set myxobj to the pxobj of me
  54.   if myxobj(mRespondsTo, "mGetLastFrame") = 0 then
  55.     return 0
  56.   else
  57.     return myxobj(mgetlastframe, atrack)
  58.   end if
  59. end
  60.  
  61. on msearchto me, aframe
  62.   if aframe < -2147483647 then
  63.     return -999
  64.   else
  65.     set myxobj to the pxobj of me
  66.     myxobj(msearchto, aframe)
  67.     return mservice(me)
  68.   end if
  69. end
  70.  
  71. on mreadpos me
  72.   set myxobj to the pxobj of me
  73.   myxobj(mreadpos)
  74.   mservice(me)
  75.   return myxobj(mgetvalue)
  76. end
  77.  
  78. on mgettrack me
  79.   mreadpos(me)
  80.   set myxobj to the pxobj of me
  81.   if myxobj(mRespondsTo, "mGetTrack") = 0 then
  82.     return 0
  83.   else
  84.     return myxobj(mgettrack)
  85.   end if
  86. end
  87.  
  88. on stepFrame me
  89.   set myxobj to the pxobj of me
  90.   myxobj(mreadstatus)
  91.   set cc to mservice(me)
  92.   if cc >= 0 then
  93.     set stat to myxobj(mgetvalue)
  94.     if (stat = 3) or (stat = 4) then
  95.       myxobj(mplaycue)
  96.       mservice(me)
  97.       myxobj(mplaysegment)
  98.       myxobj(mservice)
  99.     end if
  100.   end if
  101. end
  102.  
  103. on minitialize me
  104.   set the pxobj of me to applecd(mnew)
  105.   set myxobj to the pxobj of me
  106.   set cc to mpreparemedium(me)
  107.   maudioenable(me, 1, 1)
  108.   maudioenable(me, 2, 1)
  109.   return cc
  110. end
  111.  
  112. on mplay me, aninlist, adurationframes
  113.   set myxobj to the pxobj of me
  114.   if not voidp(aninlist) then
  115.     if count(aninlist) > 1 then
  116.       set inoffset to getAt(aninlist, 2)
  117.     else
  118.       set inoffset to 0
  119.     end if
  120.     set track to getAt(aninlist, 1)
  121.     set intrackframes to mgetfirstframe(me, track)
  122.     set inpoint to intrackframes + inoffset
  123.     myxobj(msetinpoint, inpoint)
  124.     if voidp(adurationframes) then
  125.       set outpoint to mgetlastframe(me, track)
  126.     else
  127.       set outpoint to inpoint + adurationframes
  128.     end if
  129.     set the poutpoint of me to outpoint
  130.     myxobj(msetoutpoint, outpoint)
  131.     myxobj(mplaycue)
  132.     mservice(me)
  133.   end if
  134.   myxobj(mplaysegment)
  135.   myxobj(mservice)
  136. end
  137.  
  138. on mcancelloop me
  139.   set i to getOne(the actorList, me)
  140.   if i > 0 then
  141.     deleteAt(the actorList, i)
  142.   end if
  143. end
  144.  
  145. on mpause me
  146.   set myxobj to the pxobj of me
  147.   myxobj(mstill)
  148.   return mservice(me)
  149. end
  150.  
  151. on mframesleft me
  152.   set myxobj to the pxobj of me
  153.   mservice(me)
  154.   set pos to myxobj(mgetvalue)
  155.   return the poutpoint of me - pos
  156. end
  157.  
  158. on mplayloop me, aninlist, adurationframes
  159.   set cc to mplay(me, aninlist, adurationframes)
  160.   append(the actorList, me)
  161.   return cc
  162. end
  163.  
  164. on mpauseloop me
  165.   mcancelloop(me)
  166.   return mpause(me)
  167. end
  168.  
  169. on mreadstatus me
  170.   set myxobj to the pxobj of me
  171.   myxobj(mreadstatus)
  172.   set cc to mservice(me)
  173.   if cc < 0 then
  174.     return -1
  175.   else
  176.     set stat to myxobj(mgetvalue)
  177.     if stat <= 2 then
  178.       return -1
  179.     else
  180.       if stat <= 4 then
  181.         return 0
  182.       else
  183.         return 1
  184.       end if
  185.     end if
  186.   end if
  187. end
  188.  
  189. on mgettracklength me, atrack
  190.   set myxobj to the pxobj of me
  191.   return mgetlastframe(me, atrack) - mgetfirstframe(me, atrack)
  192. end
  193.  
  194. on mdispose me
  195.   nothing()
  196. end
  197.